import Vue from 'vue'
import App from './App.vue'
// 6.2 导入路由模块
import router from './router/index'

// 引入CSS样式
import './styles/reset.css'
// 引入字体图标
import './styles/iconfont.css'

// 全部注册 Vant 组件或者函数
import { Toast } from 'vant'
import { Notify } from 'vant';
import { Image as VanImage } from 'vant'
import { Dialog } from 'vant';
import { NavBar } from 'vant'
import { Icon } from 'vant'
import { Uploader } from 'vant'
import { Field } from 'vant'
import { ActionSheet } from 'vant'
import { Tab, Tabs } from 'vant'
import { List } from 'vant'
import { PullRefresh } from 'vant';
import { Button } from 'vant'
import { SwipeCell } from 'vant'
import { Empty } from 'vant'
import { Search } from 'vant'

Vue.use(Search)
Vue.use(Empty)
Vue.use(SwipeCell)
Vue.use(Button)
Vue.use(PullRefresh);
Vue.use(List)
Vue.use(Tab)
Vue.use(Tabs)
Vue.use(ActionSheet)
Vue.use(Field)
Vue.use(Uploader)
Vue.use(Icon)
Vue.use(NavBar)
// 全局注册
Vue.use(Dialog);
// console.log(typeof Toast);  // 轻提示是一个函数  function
// 全部注册 Toast 函数，会自动在Vue 的 prototype 上挂载 $toast 方法 ，便于在组件内通过 this.$toast 调用
Vue.use(VanImage)
Vue.use(Toast)
// 全局注册
Vue.use(Notify);


import defaultImg from './assets/logo.png'
import request from "./utils/request"
Vue.filter('imgUrl', (val) => {
  // console.log(val)
  // 如果没有http 开始，就需要拼接成完整的图片地址
  if (!val) {  // undefined 和 '' 其实都属性加值，取反布尔值都为true
    // 在JS文件中，本地图片需要导入后，才能使用其打包后的路径
    return defaultImg

  } else if (val.indexOf('http') === -1) {
    return request.defaults.baseURL + val;

  } else {
    // 是 http 开始，就直接返回即可
    return val;
  }
})
// 三元运算符 + 箭头函数 化简后一行代码即可
// Vue.filter('imgUrl', (val) => val.indexOf('http') === -1 ? request.defaults.baseURL + val : val)
Vue.config.productionTip = false


// 通过过滤器实现时间的格式化处理
Vue.filter('formatDate', (val) => {
  if (val) {
    return val.replace('T', '  ').replace('.000Z', '  ')
  }
})

// 自定义获取焦点的指令
Vue.directive('focus', {
  // 标签(组件)更新时，自动获取焦点
  update(el) {
    el.focus()
  },
})
new Vue({
  router,
  render: h => h(App),
}).$mount('#app')
